package com.seed.codegenerator.manager;

import com.seed.codegenerator.generator.enums.CodeGeneratorEnum;
import com.seed.codegenerator.manager.dto.GenerateDTO;
import com.seed.codegenerator.manager.form.GenerateLeftRightDictionaryForm;

/**
 * @author gchiaway
 * 日期: 2020-02-12
 * 时间: 21:30
 */
public interface CodeGenerator {
    /**
     * 生成后台代码
     *
     * @param outFilePath 输出目录
     * @param tableNames  表名
     * @return 生成结果
     */
    GenerateDTO generateSystemCode(String outFilePath, String... tableNames);

    /**
     * 生成后台代码
     *
     * @param outFilePath       输出目录
     * @param codeGeneratorEnum 代码风格
     * @param tableNames        表名
     * @return 生成结果
     */
    GenerateDTO generateSystemCode(String outFilePath, CodeGeneratorEnum codeGeneratorEnum, String... tableNames);


    /**
     * 生成后台代码
     *
     * @param outFilePath 输出目录
     * @param form        左右字典表单
     * @return 生成结果
     */
    GenerateDTO generateLeftRightDictionaryCode(String outFilePath, GenerateLeftRightDictionaryForm form);


    /**
     * 生成空api代码
     *
     * @param outFilePath 输出目录
     * @param tableNames  表名
     * @return 生成结果
     */
    GenerateDTO generateEmptyCode(String outFilePath, String... tableNames);

}
